iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0

前言

昨天教完各位使用SwiftData 必須做的前置步驟後,今天我們開始要來講解怎麼把資料做新增跟刪除。

這邊我們看到 ContentView 最底下的 Preview 竟然也有一個 modelContainer

https://ithelp.ithome.com.tw/upload/images/20240908/20161845wKlpkCOXoT.png

在預覽(Preview)環境中,這段程式碼的意思是:

  1. 創建一個僅存在於內存中的 ModelContainer。
  2. 資料不會被持久化保存到磁盤上。
  3. 這種設置主要用於測試和預覽 UI,不會影響實際應用程式的資料。
  4. 它允許在預覽中快速創建和操作資料,而不會干擾真實的資料庫。

追蹤記憶體中已建立好的所有 Data 模型

接下來我們看到 ContentView 最上面的程式碼

https://ithelp.ithome.com.tw/upload/images/20240908/20161845IG3LchLkXD.png

第一行使用 @Environment 來獲取環境中的 modelContext。 modelContext 是SwiftData的核心,它提供了對資料庫的查詢,並允許執行資料模型的 CRUD 操作。

第二行使用 @Query 來從資料庫中獲取資料。它宣告使用 array 表示裡面的每個資料都是 Item 型別。這個變數會自動查詢資料,且每次資料變更時都會自動保持最新的狀態。

新增資料

再來,我們看到下面創好的function,這邊主要就是創建好一個 Item 的實體,然後把他 insert 到剛剛的 modelContext裡面。新增資料就是這麼簡單就完成了。
https://ithelp.ithome.com.tw/upload/images/20240908/20161845aZAHBG6Vna.png

刪除資料

最後,我們看一下這邊的刪除,我覺得自動生成的範例Code沒有寫得很好,因為其實不需要用forloop去跑,因為他們寫法是一次只能刪除一個,所以我們著重看迴圈裡面的。

那刪除資料也很簡單,使用 delete 然後查看要把哪一個 Item 的實體刪掉就好了。

https://ithelp.ithome.com.tw/upload/images/20240908/20161845XGEon6yKTB.png

結尾

各位看到這邊是不是覺得 SwiftData 這個新的資料庫框架真的很容易學習呢?它的設計理念簡潔明瞭,操作方式直觀易懂,讓我們能夠輕鬆地管理和操作資料。

接下來我會實作一個 SwiftData 的小App,搭配著讓各位知道怎麼使用這個全新的框架。各位明天見


上一篇
Day05 - SwiftData 的前置作業
下一篇
Day07 - 管理食物相關資訊App
系列文
Xiang教你進階Swift從有到精30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言